﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using NIEN_LUAN.Db;
using System.Threading;
using System.Windows.Forms;

namespace NIEN_LUAN
{
    public partial class FormQuanLyNhanVien : Form
    {
        private DataContentDataContext db=new DataContentDataContext();
    
        public NHANVIEN NhanVienAdd = new NHANVIEN();             
      
        public FormQuanLyNhanVien()
        {        
            InitializeComponent();
        }

        private void FormQuanLyNhanVien_Load(object sender, EventArgs e)
        {
            this.dataGridViewDSNV.AutoGenerateColumns=false;

            var nhanvien = ( from nv in db.NHANVIENs
                                 orderby nv.TenNhanVien descending
                                 select nv
                                 ).ToList();
          
            this.nHANVIENBindingSource.DataSource=nhanvien;
            this.dataGridViewDSNV.DataSource = this.nHANVIENBindingSource;
        }                    

        private void toolStripButtonThem_Click(object sender, EventArgs e)
        {
            FormChiTietNhanVien frm = new FormChiTietNhanVien(this);
            DialogResult ketqua = frm.ShowDialog();
            if (ketqua == DialogResult.OK)
            {
                nHANVIENBindingSource.Add(NhanVienAdd);
                MessageBox.Show("Thêm thành công", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
            }                          
        }

        private void toolStripButtonThoat_Click(object sender, EventArgs e)
        {
            this.Close();
        }        

        private void toolStripButtonXoa_Click(object sender, EventArgs e)
        {
            var nhanvien = this.nHANVIENBindingSource.Current as NHANVIEN;
            if (nhanvien != null)
            {
                var sl = (from m in db.CHUNGTUs
                          where m.MaNhanVien == nhanvien.MaNhanVien
                          select m).Count();
                if (sl > 0)
                {
                    MessageBox.Show("Nhân viên này có nhập chứng từ, không thể xóa");
                    return;
                }
                var tl = MessageBox.Show("Bạn có chắc chắn xóa?","Thông báo",MessageBoxButtons.YesNo,MessageBoxIcon.Question);
                if (tl == DialogResult.Yes)
                {
                    try
                    {
                        db.NHANVIENs.DeleteOnSubmit(nhanvien);
                        db.SubmitChanges();
                        this.nHANVIENBindingSource.RemoveCurrent();
                        return;
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show("Đã có lỗi khi thực hiện thao tác này Chi tiết lỗi : "+ex.Message);
                        //throw;
                        return;
                    }
                }
            }
            else
            {
                MessageBox.Show("Vui lòng chọn nhân viên cần xóa");
            }
            //DialogResult traloi;
            //traloi = MessageBox.Show("Bạn có chắc không ?", "Thông Báo", MessageBoxButtons.YesNo, MessageBoxIcon.Warning);
            //if (traloi == DialogResult.Yes)
            //{
            //    //kiem tra dieu kien xoa                
            //    nHANVIENBindingSource.RemoveCurrent();
            //    db.NHANVIENs.DeleteOnSubmit(nhanvien);
            //    db.SubmitChanges();
            //    this.dataGridViewDSNV.DataSource = this.nHANVIENBindingSource;
            //    MessageBox.Show("Bạn đã xóa thành công !!!", "Thông Báo", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
            //}
        }

        public Db.NHANVIEN NhanVienSua = new NHANVIEN();  
        private void toolStripButtonSua_Click(object sender, EventArgs e)
        {
            var nhanvien = this.nHANVIENBindingSource.Current as NHANVIEN;
            if (nhanvien != null)
            {
                NhanVienSua = nhanvien;
                var kq = new FormChiTietNhanVien(NhanVienSua, this).ShowDialog();
                if (kq == DialogResult.OK)
                {
                    nhanvien.TenNhanVien = NhanVienSua.TenNhanVien;
                    nhanvien.NgaySinh = NhanVienSua.NgaySinh;
                    nhanvien.DiaChi = NhanVienSua.DiaChi;
                    nhanvien.GioiTinh = NhanVienSua.GioiTinh;
                    nhanvien.SoDienThoai = NhanVienSua.SoDienThoai;
                    nhanvien.ChucVu = NhanVienSua.ChucVu;
                    nhanvien.Luong = NhanVienSua.Luong;
                    nhanvien.TenTruyCap = NhanVienSua.TenTruyCap;
                    nhanvien.MatKhau = NhanVienSua.MatKhau;

                    this.nHANVIENBindingSource.ResetCurrentItem();
                    MessageBox.Show("Đã cập nhật dữ liệu", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
                }
            }     
        }

        private void toolStripButtonIn_Click(object sender, EventArgs e)
        {
            Form frm = new FormReportNhanVien(this);
            frm.ShowDialog();
        }       
    }
}
